﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Infrastructure.Model.system
{
    /// <summary>
    /// 表示系统操作日志的信息，包括操作的详细记录。
    /// </summary>
    public class SysOperLog
    {
        /// <summary>
        /// 操作日志ID
        /// </summary>
        public long OperId { get; set; }

        /// <summary>
        /// 操作日志标题
        /// </summary>
        public string title { get; set; }

        /// <summary>
        /// 业务类型的编码，表示操作的业务类别
        /// </summary>
        public int businessType { get; set; }

        /// <summary>
        /// 支持的多种业务类型的数组
        /// </summary>
        public int[] businessTypes { get; set; }

        /// <summary>
        /// 执行的方法名称（如类名.方法名）
        /// </summary>
        public string method { get; set; }

        /// <summary>
        /// 请求方式（如GET、POST等）
        /// </summary>
        public string requestMethod { get; set; }

        /// <summary>
        /// 操作员类型（例如管理员、用户等）
        /// </summary>
        public int operatorType { get; set; }

        /// <summary>
        /// 操作员姓名
        /// </summary>
        public string operName { get; set; }

        /// <summary>
        /// 操作员所属部门名称
        /// </summary>
        public string deptName { get; set; }

        /// <summary>
        /// 操作请求的URL
        /// </summary>
        public string operUrl { get; set; }

        /// <summary>
        /// 操作员IP地址
        /// </summary>
        public string operIp { get; set; }

        /// <summary>
        /// 操作所在的地理位置
        /// </summary>
        public string operLocation { get; set; }

        /// <summary>
        /// 操作参数（通常是请求中的参数）
        /// </summary>
        public string? operParam { get; set; }

        /// <summary>
        /// 操作的返回结果（例如成功、失败等）
        /// </summary>
        public string jsonResult { get; set; }

        /// <summary>
        /// 操作状态（如成功、失败等）
        /// </summary>
        public int status { get; set; }

        /// <summary>
        /// 错误信息（如果操作失败时记录错误消息）
        /// </summary>
        public string errorMsg { get; set; }

        /// <summary>
        /// 操作时间
        /// </summary>
        public DateTime? operTime { get; set; }

        /// <summary>
        /// 操作所花费的时间（单位：毫秒）
        /// </summary>
        public long Elapsed { get; set; }
    }
}
